python画柱形图

您所在的位置:网站首页 python 绘制柱形图 python画柱形图

python画柱形图

2022-05-03 20:53| 来源: 网络整理| 查看: 265

本文主要讲述如何使用Python操作Excel绘制柱形图。

开发工具,环境

PyCharm

Python3

Office Excel

前面我们已经创建好了一张Excel表。

现在我们要根据已有的数据,往里面添加柱形图。

柱形图 BarChart

参考《Python openpyxl Excel绘制柱形图》得知,我们主要使用BarChart与BarChart3D类。

图表中许多的细节由BarChart属性控制。

后文都以chart1来表示柱形图对象 chart1 = BarChart() 。

数据来源范围 Reference

首先我们应该确定数据的范围。有数据才好绘图。这里使用的是Reference类来表示数据“引用”范围。

data1 = Reference(st, min_col=2, min_row=1, max_row=7, max_col=3)

cats1 = Reference(st, min_col=1, min_row=2, max_row=7)

需要注意的是,范围的下标是从1开始的。

这里的data1把标题也框进去了。设定数据的时候,需要设置titles_from_data=True

chart1.add_data(data1, titles_from_data=True)

设置种类使用set_categories方法,也是把一个范围(Reference)的数据传入。

chart1.set_categories(cats1)

柱子方向控制 type

方向由属性type来控制,有2个可选参数:bar表示横向,col表示竖直。

chart1.type = "bar" # 横向柱形图

chart1.type = "col" # 纵向柱形图

标题 title

属性title控制标题。如果置为None则不显示标题。

图表的标题 chart1.title = "日均值对比"

坐标的标题,首先需要拿到x,y的坐标。

chart1.y_axis.title = '数值'

chart1.x_axis.title = st.cell(column=1, row=1).value # 直接用单元格的内容做标题

添加图表

add_chart将图表添加到sheet中。图表的左上角对齐某个单元格。下面是对齐A8。

st.add_chart(chart1, 'A8')

3D柱形图 BarChart3D

柱子的形状 shape

默认是立方体,但也可以从下面的形状里选一个。

{'box', 'pyramid', 'pyramidToMax', 'coneToMax', 'cone', 'cylinder'}

chart1.type = 'cone'

box 是立方体,中规中矩。

pyramid 是金字塔,顶部也是尖的。

cone 是圆锥,看起来很尖锐。

cylinder 是圆柱。

配色风格 style

style 会影响图表的配色风格,一般用10比较多彩多样。

代码示例

绘制2D柱形图

def create_bar_chart_1(file_path):

"""

插入柱形图

:param file_path: Excel 文件路径

:return: None

"""

wb = load_workbook(file_path)

st = wb.active

data1 = Reference(st, min_col=2, min_row=1, max_row=7, max_col=3)

cats1 = Reference(st, min_col=1, min_row=2, max_row=7)

chart1 = BarChart()

chart1.type = "col"

chart1.style = 9

chart1.title = "日均值对比"

# chart1.y_axis.title = '数值'

chart1.x_axis.title = st.cell(column=1, row=1).value

chart1.add_data(data1, titles_from_data=True)

chart1.set_categories(cats1)

chart1.shape = 0

st.add_chart(chart1, 'A8')

wb.save(file_path)

绘制3D柱形图

def create_bar_chart_2(file_path):

"""

插入3D柱形图

:param file_path: Excel 文件路径

:return: None

"""

wb = load_workbook(file_path)

st = wb.active

data1 = Reference(st, min_col=2, min_row=1, max_row=7, max_col=3)

cats1 = Reference(st, min_col=1, min_row=2, max_row=7)

chart1 = BarChart3D()

chart1.type = "bar"

chart1.style = 10

chart1.title = "日均值对比"

chart1.x_axis.title = None

chart1.shape = 'cylinder'

chart1.add_data(data1, titles_from_data=True)

chart1.set_categories(cats1)

st.add_chart(chart1, 'A26')

wb.save(file_path)

运行结果示例图片

L3Byb3h5L2h0dHBzL2ltZzIwMTguY25ibG9ncy5jb20vYmxvZy83MDYyOTMvMjAxOTExLzcwNjI5My0yMDE5MTExOTIyMDM0MzA0Mi05Njk0MDA1Mi5wbmc=.jpg

Python openpyxl Excel绘制柱形图

这是一份openpyxl的使用指南. 大体内容翻译自官网 https://openpyxl.readthedocs.io/en/stable/charts/bar.html#vertical-hori ...

Python excel 库:Openpyxl xlrd 对比 介绍

打算用python做一个写mtk camera driver的自动化工具. 模板选用标准库里面string -> Template 即可 但要重定义替换字符,稍后说明 配置文件纠结几天:cfg, ...

iOS使用Charts框架绘制—柱形图

首先看一下最终要实现的效果: 最终效果 一.初始化barChartView 绘制柱形图需要用到BarChartView这个类,下面是初始化代码: self.barChartView = [[BarCh ...

python excel操作总结

1.openpyxl包的导入 Dos命令行输入 pip install openpyxl==2.3.3 这里注意一下openpyxl包的版本问题 版本装的太高有很多api不支持了,所以笔者这里用的是2 ...

Python Excel 多sheet 多条数据 自定义写入

pip install xlwt python excel 数据写入操作,处理网站数据导出以及不是太多数据的爬虫存储, 用处蛮多的轮子. (150+++++++++++++++++++++++++++ ...

Python turtle绘制阴阳太极图代码解析

本文详细分析如何使用Python turtle绘制阴阳太极图,先来分解这个图形,图片中有四种颜色,每条曲线上的箭头表示乌龟移动的方向,首先从中心画一个半圆(红线),以红线所示圆的直径作半径画一个校园, ...

python+matplotlib 绘制等高线

python+matplotlib 绘制等高线 步骤有七: 有一个m*n维的矩阵(data),其元素的值代表高度 构造两个向量:x(1*n)和y(1*m).这两个向量用来构造网格坐标矩阵(网格坐标矩阵 ...

xlrd python excel

xlrd python excel

excel绘制多列 其中一列作为横坐标 ; 数值拟合

excel绘制多列,其中最左列作为横纵坐标: 选中很多列,然后,,点击菜单栏的“插入”->“图标” -->在弹出的“插入图表”对话框中选择“X Y(散点图)”,默认是条形图.  左边的列会 ...

随机推荐

JS命名空间

命名冲突 全局变量会绑定到 window 上,不同的javascript文件如果使用了相同的全局变量,或者定义了相同名字就的顶层函数,都会造成命名冲突,并且很难被发现. 减少冲突的一个办法,把自己的所 ...

servletconfig和servletContext的区别

1.servletConfig: 在Servlet的配置文件中,可以使用一个或多个标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个we ...

模拟 POJ 1068 Parencodings

题目地址:http://poj.org/problem?id=1068 /* 题意:给出每个右括号前的左括号总数(P序列),输出每对括号里的(包括自身)右括号总数(W序列) 模拟题:无算法,s数组把左 ...

css3 javascript 实现菜单按钮特效

一个菜单按钮特效案例,简单的实现了动态效果. 代码效果预览地址: http://code.w3ctech.com/detail/2504

Python 实现简易 Shell

什么是shell? (1)shell是一个系统软件,负责用户和操作系统内核之间的交互,是产生进程的进程(通过linux系统调用fork,exec),主要负责解释用户的命令,进而实现用户对进程的控制. ...

Linux命令之cd

cd命令 用处:跳转目录 用法:输入cd加上你想跳转的目录,这里分几种情况 示例: 一.进入当前目录的子目录 我现在的目录是 /home/jim,如图 这个目录下面有好多文件夹是吧,现在我想进入到其中 ...

Redis /etc/redis.conf 常用配置

Redis 基础配置: daemonize yes // 设置以daemon方式启动 logfile "/var/log/redis.log" // 设置日志文件路径 dir /d ...

linux和window是文件挂载

1. 首先在windows下面创建share文件夹并设置共享(右键->属性->共享)2. 确认ubuntu安装了mount.cifs,apt-get install mount.cifs ...

8-3 Bits Equalizer uva12545

题意: 给出字符串s包含'0' '1' '?'; 再给出字符串t只包含01: 现在我们可以对S做三个操作:把0变成1,把?变成0或1,任意两个位置交换: 问最少操作几次s == t: 贪心 默认除去那 ...

rocketmq--消息的产生(普通消息)

与消息发送紧密相关的几行代码: 1. DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName") ...



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3